//计算范围较大，使用long long类型
long long distributeCandies(int n, int limit) {
    long int count = 0;
    for(int i = 0; i <= fmin(limit, n); i++){
        if(n - i > 2 * limit) continue;//如果剩余糖果超过2倍limit，则无法分配
        count += fmin(n - i, limit) - fmax(0, n - i - limit) + 1;
        //fmin(n - i, limit)表示剩余糖果和limit的最小值，fmax(0, n - i - limit)表示剩余糖果和limit的差值和0的最大值
        //min(n - i, limit)表示最多可以分配的糖果数，max(0, n - i - limit)表示最少可以分配的糖果数
        //加1是因为分配方式包括0糖果的情况
    }
    return count;
}